﻿using System;
using PrismNavigationFramework.MVVM;

namespace PrismNavigationFramework.Navigation
{
    public interface IPrismViewLoadingService
    {
        string CurrentMainRegionUrl { get; set; }

        bool UrlNeedsToBeLoadedToMainRegion(string url);

        void LoadUrlToRegion(string path, string regionName);

        void LoadViewToRegion(Type viewType, string regionName);
        void LoadViewToRegion(Type viewType, ViewInitializationData initializationData);

        void LoadViewToRegion<TViewType>(string regionName); 
        void LoadViewToRegion<TViewType>(ViewInitializationData initializationData);

        void UnloadViewFromRegion(string regionName, object view);
    }
}